<?php
/**
 * 模块管理
 * Modify Date			2009-03-09
 * Author				peace@warmy.cn
 */
cache_delete_manage();
$warmy_tree			= new Warmy_tree($db,"",false,FUNCTIONTABLE);
$cmd	= isset($_GET['cmd']) ? strtolower($_GET['cmd']) : '';
switch($cmd)
{
	case "add":
		Add();
		break;
	case "edit":
		Edit();
		break;
	case "delete":
		Del();
		break;
	case "save":
		Save();
		break;
	default:
		$cmd	= "list";
		View();
		break;
}
/**************************************************************************************************
功能列表
**************************************************************************************************/
function View()
{
	Add_Op_Log("查看功能模块");
	set_cookie("SYSTEM_HTTP_REFERER",$_SERVER['REQUEST_URI']);
	/**********************************************************************************************
	获取所有功能点
	**********************************************************************************************/
	$url				= ANotify::parse_URI("id","cmd");
	$url				= "$url&cmd=edit&id=";
?>
<table Class="yc" cellspacing="1" cellpadding="0" >
  <tr>
    <th colspan="2" width="40%">栏目名称</th>
    <th width="10%">类型</th>
    <th width="50%">模板 </th>
  </tr>
  <tr>
    <td colspan="4" ><a href="<?=ATHENA_SCRIPT_INDEX?>?Model=<?=$GLOBALS['ATHENA_MODEL']?>&cmd=edit&Id=0">系统功能</a></td>
  </tr>
  <?=$GLOBALS['warmy_tree']->View($url,true);?>
  <tr bgcolor="#FFFFFF">
    <td colspan="4" height="50" style="text-align:center">
      <input name="Add" type="Submit" class="button" value="新增" onclick="AppendCmd('add')"/>
      <input name="Delete" type="Submit" class="button" value="删除" onclick="if(window.confirm('确信删除？')){AppendCmd('delete')}else{return false;}"/>
    </td>
  </tr>
</table>
<br>
<?}
/**************************************************************************************************
增加内容表单
**************************************************************************************************/
function Add()
{
?>
<table Class="yc" cellspacing="1" cellpadding="0">
  <tr>
    <td width="30%" ><b>父目录</b> <br>
      当前栏目的上一级栏目名称（可以为空） </td>
    <td class="name"><select name="root">
        <option value="0">选择上级功能</option>
        <?=$GLOBALS['warmy_tree']->View_Option(0);?>
      </select>
    </td>
  </tr>
  <tr>
    <td class="name"><b>栏目名称</b><br>
      栏目导航和管理导航所使用名称 </td>
    <td><input type="text" name="name" CLASS="INPUTTEXT"></td>
  </tr>
  <tr>
    <td><b>模块程序</b><br>
      选择系统模块，系统生成对应管理程序，用户可自定义</td>
    <td><select name="model" style="width:160px;">
        <option value="0">自定义管理模块</option>
        <?=Model_Option()?>
      </select>
    </td>
  </tr>
  <tr>
    <td class="index"><b>管理模板路径</b><br>
      当前栏目管理模块存放路径 </td>
    <td><input type="text" name="href" CLASS="INPUTTEXT"></td>
  </tr>
  <tr>
    <td><b>组件类型</b><br>
      发布类型组件允许生成静态页</td>
    <td><input type="radio" name="type" value="P">
      发布
      <input type="radio" name="type" value="U" checked>
      用户</td>
  </tr>
  <?if(defined("MICRO_RIGHT_SET") && MICRO_RIGHT_SET == 1){?>
  <tr>
    <td><b>微权限</b>设置功能点的微权限</td>
    <td><input type ="checkbox" name="micro[]" value="1">
      增加&nbsp;
      <input type ="checkbox" name="micro[]" value="2">
      修改&nbsp;
      <input type ="checkbox" name="micro[]" value="4">
      删除&nbsp;
      <input type ="checkbox" name="micro[]" value="8">
      审核&nbsp; </td>
  </tr>
  <?}?>
  <tr bgcolor="#FFFFFF">
    <td colspan="10" height="50" style="text-align:center">
    	<input name="Submit" type="submit" class="button" value="保存" onclick="AppendCmd('save')"/>
      	<input name="back" type="submit" class="button" value="返回" onclick="AppendCmd('back')"/>
      	<input type="hidden" name="SYSTEM_HTTP_REFERER" value="<?=get_cookie("SYSTEM_HTTP_REFERER")?>">
    </td>
  </tr>
</table>
<br>
<script language="javascript">
function CheckForm()
{
	try
	{
		if(!CheckTextB(document.frmList.name,8,"请输入新功能名称！"))
				return false;
		return true;
	}
	catch(e)
	{
		alert(e.description);
	}
	return false;
}

</script>
<?
}
/**************************************************************************************************
编辑功能点表单
**************************************************************************************************/
function Edit()
{
	//获取修改记录ID
	$Id			= $_GET['id'] && ereg("^[0-9]+$",$_GET['id']) ? $_GET['id'] : 0;
	if($Id == 0)
		ANotify::halt("请选择需要修改的记录！",'ERR');
	$sql = "select * from `".FUNCTIONTABLE."` where Id=$Id ";
	$row	= $GLOBALS['db']->get_one($sql,MYSQL_ASSOC);
	if(!$row)
		ANotify::halt("选择的记录已被删除或不允许修改！","ERR");
	if($row["type"] =="S")
		$chk = "<input type=\"radio\" name=\"type\" value=\"S\" checked>系统";
	else 
	{
		$chk = "<input type=\"radio\" name=\"type\" value=\"P\" ";
		if($row["type"] == "P")
			$chk = "$chk checked";
		$chk = "$chk>发布 <input type=\"radio\" name=\"type\" value=\"U\" ";
		if($row["type"] == "U")
			$chk = "$chk checked";
		$chk = "$chk>用户";
	}
	$modelstr	= Model_Option($row["model"]);
	$micro		= $row['micro'];
?>
<table Class="yc" cellspacing="1" cellpadding="0">
  <tr>
    <td width="300" class="fname"><b>父目录</b> <br>
      当前栏目的上一级栏目名称（可以为空） </td>
    <td class="name"><select name="root">
        <option value="0">选择上级功能</option>
        <?=$GLOBALS['warmy_tree']->View_Option($row["root"]);?>
      </select>
    </td>
  </tr>
  <tr>
    <td class="name"><b>栏目名称</b><br>
      栏目导航和管理导航所使用名称 </td>
    <td><input type="text" name="name" value="<?PrintTextValue($row['name']);?>" CLASS="INPUTTEXT"></td>
  </tr>
  <tr>
    <td><b>模块程序</b><br>
      选择系统模块，系统生成对应管理程序，用户可自定义</td>
    <td><select name="model" style="width:160px;">
        <option value="0">自定义管理模块</option>
        <?=$modelstr?>
      </select>
    </td>
  </tr>
  <tr>
    <td class="index"><b>管理模板路径</b><br>
      当前栏目管理模块存放路径 </td>
    <td><input type="text" name="href" value="<?PrintTextValue($row['href']);?>" CLASS="INPUTTEXT"></td>
  </tr>
  <tr>
    <td><b>组件类型</b><br>
      发布类型组件允许生成静态页</td>
    <td><?=$chk?></td>
  </tr>
  <tr>
    <td><b>发布地址</b><br/>
      发布URL为绝对地址，且决定静态页面存放位置</td>
    <td><input type="text" name="url" value="<?PrintTextValue($row['url']);?>" maxlength="200" class="INPUTTEXT"></td>
  </tr>
 
  <?if(defined("MICRO_RIGHT_SET") && MICRO_RIGHT_SET == 1){?>
  <tr>
    <td><b>微权限</b>设置功能点的微权限</td>
    <td><input type ="checkbox" name="micro[]" value="1" <?if(($micro & 1) == 1) print('checked');?>>
      增加&nbsp;
      <input type ="checkbox" name="micro[]" value="2" <?if(($micro & 2) == 2) print('checked');?>>
      修改&nbsp;
      <input type ="checkbox" name="micro[]" value="4" <?if(($micro & 4) == 4) print('checked');?>>
      删除&nbsp;
      <input type ="checkbox" name="micro[]" value="8" <?if(($micro & 8) == 8) print('checked');?>>
      审核&nbsp; </td>
  </tr>
  <?}?>
  <tr bgcolor="#FFFFFF">
    <td colspan="10" height="50" style="text-align:center">
        <input name="Submit" type="submit" class="button" value="保存" onclick="AppendCmd('save')"/>
      	<input name="back" type="submit" class="button" value="返回" onclick="AppendCmd('back')"/>
      	<input type="hidden" name="SYSTEM_HTTP_REFERER" value="<?=get_cookie("SYSTEM_HTTP_REFERER")?>">
      	<input type="hidden" name="id" value="<?=$Id?>">
    </td>
  </tr>
</table>
<br>
<script language="javascript">
function CheckForm()
{
	try
	{
		if(!CheckTextB(document.frmList.name,8,"请输入新功能名称！"))
				return false;
		return true;
	}
	catch(e)
	{
		alert(e.description);
	}
	return false;
}
document.frmList.attachEvent("onsubmit", CheckForm);
frmListattachEvent = CheckForm;
</script>
<?	
}
/**************************************************************************************************
删除功能点
**************************************************************************************************/
function Del()
{
	Add_Op_Log('删除功能模块');
	if (isset($_POST['id']))
	{
		$GLOBALS['warmy_tree']->DeleteFun($_POST['id']);
		ANotify::halt("成功删除选择及其子功能点！",'SUCCESS');
	}
	else
		ANotify::halt("没有选择需要删除的功能点！",'ERR');
}

/**************************************************************************************************
保存数据
**************************************************************************************************/
function Save()
{
	/**********************************************************************************************
	获取所有功能点
	**********************************************************************************************/
	//判断当前保存操作是新增记录还是修改记录的条件是：
	//新增记录时，无记录ID
	//编辑内容时有当前记录ID
	$ID = isset($_POST["id"]) && ereg("^[0-9]+$",$_POST['id']) ? $_POST['id'] : 0;
	//获取父节点
	//如果父节点不为数字，则设置为零
	$root		= isset($_POST['root']) && ereg("^[0-9]+$",$_POST['root']) ? $_POST['root'] : 0;
	//获取功能点名称
	$name		= isset($_POST['name'])?$_POST['name']:'';
	if($name == "")
		ANotify::halt("功能名称不能为空！");
	//获取功能连接
	$href		= isset($_POST['href'])?$_POST['href']:'';
	$type		= isset($_POST["type"]) && $_POST["type"] == 'S' ? 'S' : 'P';
	$url		= isset($_POST["url"]) ? $_POST["url"] : '';
	$model		= isset($_POST['model']) && ereg("^[0-9]+$",$_POST['model']) ? $_POST['model'] : 0;
	
	if(isset($_POST['micro']))
	{
		$micro = 0;
		while (list(,$value) = each($_POST['micro']))
		{
			if(ereg("^[0-9]+$",$value))
				$micro += $value;
		}
	}
	else 
		$micro = -1;
	if($ID == 0)
	{
		Add_Op_Log("新增功能模块 $name");
		if($GLOBALS['warmy_tree']->AddNew($root,$name,$href,$type,$model,$url,$micro))
			ANotify::halt("新增功能<font color=red>$name</font>成功！",ATHENA_SCRIPT_INDEX."?Model={$GLOBALS['ATHENA_MODEL']}");
		else
			ANotify::halt("新增功能失败");
	}
	else
	{
		Add_Op_Log("编辑功能模块 $name");
		if($GLOBALS['warmy_tree']->Update($ID,$root,$name,$href,$type,$model,$url,$micro))
			ANotify::halt("修改功能<font color=red>$name</font>成功！",ATHENA_SCRIPT_INDEX."?Model={$GLOBALS['ATHENA_MODEL']}");
		else
			$ANotify->halt("修改功能<font color=red>$name</font>失败");
	}
}
function Model_Option($model = 0)
{
	$sql	= "select modelid,modelname from ".WMODELTABLE." order by modelid";
	$mrow	= $GLOBALS['db']->query_row($sql,MYSQL_NUM);
	$len	= count($mrow);
	$modelstr	= "";
	for ($i=0;$i<$len;$i++)
	{
		if($mrow[$i][0] == $model)
			$selected	= " selected";
		else 
			$selected	= "";
		$modelstr	= "<option value=\"{$mrow[$i][0]}\"$selected>{$mrow[$i][1]}</option>";
	}
	unset($mrow);
	return $modelstr;
}
?>
